//前 K 个高频元素
/*给你一个整数数组 nums 和一个整数 k ，请你返回其中出现频率前 k 高的元素。你可以按 任意顺序 返回答案。
1 <= nums.length <= 105
k 的取值范围是 [1, 数组中不相同的元素的个数]
题目数据保证答案唯一，换句话说，数组中前 k 个高频元素的集合是唯一的*/
class Solution {
    struct comp {
        bool operator()(pair<int, int> x, pair<int, int> y) {
            return x.second > y.second;
        }
    };

public:
    vector<int> topKFrequent(vector<int>& nums, int k) {
        unordered_map<int, int> arr;
        for (auto& num : nums) {
            arr[num]++;
        }
        vector<pair<int, int>> path(arr.begin(), arr.end());
        sort(path.begin(), path.end(), comp());
        vector<int> ret(k);
        for (int i = 0; i < k; i++) {
            ret[i] = path[i].first;
        }
        return ret;
    }
};